/*
Checkbox.hpp
----------

Par Bréhaut Vincent le 08/05/2011

Rôle: Checkbox, indique si oui ou non le checkbox est presser
*/

#ifndef DEF_CHECKBOX
#define DEF_CHECKBOX

#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include "Widget.hpp"
#include "../Engine.hpp"

namespace GUI
{
    class Checkbox : public Widget
    {
        public:
            Checkbox(Engine &Moteur, const sf::String &text=sf::String(""));
            void SetText(const sf::String &text); // Modifi le texte de la checkbox
            bool IsCheck(); // Revoie la valeur de la variable m_ischeck
            void SetCheck(bool check);
            bool IsHover();

            virtual void Afficher();
            virtual void UpdateEvent();
        protected:
            sf::Sprite m_image; // Image de la checkbox
            std::vector<sf::IntRect> m_rects; // Rects des deux images de la checkbox

            sf::Shape m_shape; // Shape s'affichant lors du survol de la checkbox ou du texte

            bool m_ishover; // Indique si la checkbox a la souris au dessus d'elle
            bool m_ischeck; // Indique si la checkbox est "checker" ou non
            sf::Text m_text; // Texte à coter de la checkbox
            //Sons
            sf::SoundBuffer m_buffer;
            sf::Sound m_son; // Son émis lors du clique sur le bouton
    };
}

#endif
